package com.buer.storage.vo;

import com.buer.storage.type.RType;
import lombok.Data;

@Data
public class R<T> {
    /**
     * 返回码
     */
    private int code;
    /**
     * 返回码的字符串信息
     */
    private String msg;
    /**
     * 返回的数据
     */
    private T data;

    public static <T> com.buer.storage.vo.R setR(int c, String m, T obj) {
        com.buer.storage.vo.R r = new com.buer.storage.vo.R();
        r.setCode(c);
        r.setData(obj);
        r.setMsg(m);
        return r;
    }

    /**
     * 成功
     * @return
     */
    public static com.buer.storage.vo.R ok() {
        return setR(RType.成功.getVal(), "OK", null);
    }

    /**
     * 成功
     * @param t
     * @param <T>
     * @return
     */
    public static <T> com.buer.storage.vo.R ok(T t){
        return setR(RType.成功.getVal(),"OK",t);
    }

    /**
     * 失败
     * @return
     */
    public static com.buer.storage.vo.R fail(){
        return setR(RType.失败.getVal(),"Fail",null);
    }

    public static com.buer.storage.vo.R fail(String msg) {
        return setR(RType.失败.getVal(), msg, "null");
    }

}